package netty.nio.netty;

import netty.util.HexUtil;
import org.jboss.netty.channel.*;

public class NettyHandler extends SimpleChannelUpstreamHandler {

    //Когда канал приконнектился отправляем сообщение приветствия
    //и можно сделать еще какие то подготовительные действия
    @Override
    public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) {

        String msg = "Hello";
        e.getChannel().write(msg);

        System.out.println("Netty Server: Message Send");
    }

    //По каналу пришло любое сообщение, надо что то с ним делать
    @Override
    public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {

        byte[] message = (byte[]) e.getMessage();

        System.out.println("Netty Server: Message Recieved " + HexUtil.HexToString(message));

    }

    @Override
    public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {

    }

    @Override
    public void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {

    }

    // Обработка исключений
    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) {
        System.out.println("Netty Server: Shit Happens - " + e.getCause());
    }

}